JPEG is an image compression standard developed by the Joint Photographic Experts Group for communicating digitized still images from one operating platform to another. More particularly when an image is to be digitized and recorded on a recording media, such as the hard drive of a computer, the image data become enormous. Thus, in order to conserve on the amount of required storage space most if not all digital images are first compressed before storage. JPEG compression is the leading standard for digitized still images.
The baseline JPEG compression algorithm begins by transforming an image to be stored into an appropriate color space. For example, a digital camera captures light that is indicative of a scene and then causes the captured light to be converted into a digital signal which is subsequently stored on a flash memory card or the like. In this regard, the image is typically first transformed from RGB color space into a luminance/chrominance color (Y Cb Cr) space. The reason for such a conversion is that loss of chrominance components is not nearly as critical as loss of the luminance component since the human eye is not as sensitive to high-frequency chroma information as it is to high-frequency luminance information. Next, the components are down sampled by averaging together groups of pixels. The luminance component is generally held at its full resolution, while the chroma components are reduced 2:1 horizontally and 2:1 or 1:1 (no change) vertically. This down sampling is sometimes called “411” sampling which immediately reduces the data volume by about one-half to about one-third. The data reduction process has little or no effect on the quality of the image since the human eye is unable to process chroma information in a highly effective manner.
The next step in the compression process is to divide or group the image into 8 by 8 pixel block values and then transform each 8×8 block through a discrete cosine transformation (DCT). This transformation provides a frequency map for the various ones of the components allowing the higher frequency component values to be eliminated without affecting the low-frequency information. Next a quantizer rounds off the DCT coefficients according to a quantization matrix. That is, in each block the sixty four frequency components are divided by separate quantization coefficients, and then rounded to the nearest integer. While this step produces the “Lossy” nature of JPEG, the process nevertheless allows for large compression ratios. This quantizing process typically utilizes simple linear scaling and achieve satisfactory results.
The reduced coefficients are then encoded using Huffinan coding to provide a binary output data stream which is stored on the available storage medium.
Decompression is a reverse process of compression. That is, JPEG recovers the quantized DCT coefficients from the compressed data stream, takes an inverse transform, and then converts the resulting color space components of luminance and chrominance into RGB color space for display purposes or into CYMK color space from printing purposes.
While such JPEG compression and decompression techniques have been satisfactory for most image storage and output purposes it would be highly desirable to have a new and improved image processing apparatus and method that achieves better image quality and performance results.